Beyond labelling - label an object with more than just a name
Note: text in square brackets [] denotes text spoken by the screenreader.
Welcome to this tutorial on how you can use AT Prime to label an object with more than just a name.
In the previous tutorial, we explored how to give a label to a list box which didn't already have one. In this tutorial, I'll show you how you can get your screenreader to read out more information about controls and objects.
AT Prime is currently running and I'll launch the Demo app again from the Help menu.
[Demo app for AT Prime dialog]
And here it is. As I tab through this window, we'll come to the Gender combo box.
[Enter your name. Gender combo box, Male]
The screenreader is reading out the name I gave to it earlier. I want to tab on until I get to the Hello button:
[This is a simple window which can be used... All application developers ... Pick code, combo ... Current total, edit read only ... Hello button]
And here we are. What I want to do here is to show how you can add more information about the button, that is, information in addition to its name or label. It already has a label - that's the word 'Hello'. As before when saving a label, we use the Object Inspector when adding more information about a control. So I open the AT Prime menu
[Context menu]
And I'll simply press 'o' to open the Object Inspector.
[Object Inspector. Name of object, Hello]
The name or label field shows the word 'Hello' as you would expect. I'm going to start tabbing through the controls in the Object Inspector:
[Object type, edit read only, alt T, selected, Button]
And here's the Object Type field which confirms that we are dealing with a button.
[Description, edit, alt D, blank. Help text, edit, alt e, blank]
And now we come to the Description and Help text fields, both of which are blank. Where an application already provides a name or label, such as 'Hello' for this button, you will not be able to change it in the Object Inspector. This is because your screenreader will always read out the name provided by the application and AT Prime does not interfere with that but you can use the Object Inspector to add clarification or helpful guidance about a control or object.
A slight digression here, but the Jaws labeller might be familiar to many of you. It allows you to label a control with three different types of information: a name or label, or even a 'prompt' name, for the control; a longer description and what Jaws refers to as a 'tutor message'. These three categories of information relate to how the accessibility system works in Windows which any application can use or access.
Sometimes, an application might provide some text for the description of an object and, extremely rarely, text for the help text property as well. But, most of the time, the description and help text properties are blank so you are free in AT Prime to provide your own.
Let's do that with the Hello button. All we know about the button so far is that it is called 'Hello'. One way to find out what it does is to go back to the application and select it and see what happens. Sometimes, that's not a good idea. Let's see if there's any information in the Object Inspector which might tell us what it does.
After the blank Help text field,
[Tooltip text, edit read only, alt p, selected, This is the hello button]
I tab to the Tooltip text field which does have text in it. Sometimes, any tooltip text here might be helpful in describing what the object is for. But this text here is not particularly helpful.
But where did this text come from? A tooltip is a small block of text which pops up on the screen when the mouse is moved over the object and which then usually disappears after a few seconds. Not every type of control or object will have a tooltip but these tooltips are very common indeed for toolbar buttons and especially for controls which have images on them and not text.
When the Object Inspector was in the process of opening, AT Prime analysed the window for clues about the Hello button and also looked to see if there was a tooltip for the Hello button. A tooltip was found and its text is now displayed in the Tooltip text field here. You will have noticed that it can take quite some time for the Object Inspector to open while it looks for a tooltip but you can control the circumstances in which AT Prime looks for a tooltip so that the Object Inspector will open more quickly and that's covered in the tutorial dealing with the AT Prime Settings window.
Although not particularly helpful, I'm going to copy this text here into the Description field and we'll have a chance to change this text later on. So I press control+C and shift tab back to the Description field.
[Help text ... Description, edit, alt D]
And press control+V to paste in the text.
[Description, edit focused, alt D, This is the hello button]
Now that there's text in the Description field, the screenreader will read this text whenever this button gains focus in the future. I'm going to press Enter to close the Object Inspector so that this new text will be saved.
[Demo app for AT Prime dialog...]
And when I now tab around in the Demo app window,
[Hello button, This is the hello button]
The text that I added as the description is now read by the screenreader. Let's press Enter on the Hello button to see if it actually does display a message.
[Demo app dialog. Hello world! OK button]
It does, good.
The help text field is used less often as I said earlier but this shouldn't stop you from using your imagination to add helpful information to a control. Here's a good example. I'm going to tab to the Current total edit field.
[Current total, edit read only, selected 452]
This is a simple, read-only edit field with a number in it which seems to increase every so often. Actually, the number increases by 1 every five seconds. So, what do I do with this? Let's imagine that the current total relates to the number of sales in a shop or in a sales department and let's say that you are in charge of managing the sales or the stock being sold. You might have had some quick training on the office database but, inevitably, there might be some controls that you find unclear or where you may need some further prompting on what to do next. This is where you can use the Object Inspector to help you.
With focus on the Current total edit field, I'm going to open the Object Inspector and tab straight down to the Tooltip text field to see if there's any text there.
[Context menu... Object Inspector ... Please wait Object Inspector. Name of object, Current total. Object type, edit read only, selected, edit. Description. Help text. Tooltip text, edit read only, alt p, selected, Remember to order more stock if the total exceeds 50]
And there is. It's an instruction to order more stock when the total reaches 50. I want to be prompted with this instruction whenever I tab to the Current total field so I'll have to copy the text and paste it into either the Description or the Help text field. Now, it doesn't actually matter which field I paste it in to but if you bear in mind that the Description field is intended to provide a longer description of what the control is and the Help text field is there to give you a hint on what you need to do with the control, then it makes sense to put this kind of information into the Help text field.
[Help text]
So, I'm pressing control+V to paste it in here
[Help text, edit focused, alt e, Remember to order more stock if the total exceeds 50]
So, I'll press Enter to close the Object Inspector and now the instruction is read when I tab to the Current total edit field.
[Hello button. Current total, edit, Remember to order more stock if the total exceeds 50]
What I have done with the Hello button and the Current total edit field was to copy the tooltip text found in the Object Inspector into the Description and Help text fields. Of course, you don't have to use the tooltip text - you can enter any text you like into the Description and Help text fields. Remember that the label, description and help text you provide in the Object Inspector will be available to you no matter what computer you are using and whatever screenreader is available.
If you find that when you are using complex software with so many features that you find that you are having to constantly look at the user guide to remind you about the features or to remember shortcuts, you could, for example, label an object in the window with some help text which needn't relate to the actual control itself but which gives a prompt on what to do in the window generally and what shortcuts might be important. How about a quick example?
When you open the Demo app, the first control to get keyboard focus is the 'Enter your name' edit field. I'm going to save a helpful hint about the whole window in the Help text for this control. So I open the Object Inspector:
[Please wait. Object Inspector. Name of object, Enter your name]
Tab to the Help text field and type:
[...
Help text, edit focused, alt e, There are 4 buttons in the toolbar. Remember to close the window by selecting the OK button or by pressing alt F4]
And by pressing Enter, that text is now saved and it will be announced whenever the 'Enter your name' field gets keyboard focus.
[Gender combo box, Male, collapsed. Enter your name, edit, There are 4 buttons in the toolbar. Remember to close the window by selecting the OK button or by pressing alt F4]
Now, the information I typed does not relate to the Enter your name field itself, but to the whole window. And you can save any information like this with any control in a window - it's up to you.
Depending on your screenreader, the Description and Help text fields might be read after the contents of the edit field like this so you might actually want to put these kinds of general hints in the Help text for other kinds of objects, such as buttons.
In this and the previous tutorial, I have shown you how you can use the Object Inspector to add information about a control which has keyboard focus. The Object Inspector can also be opened in respect of any object that you can tab to when in Optimise Tabbing mode. So that means that you can add labels for objects which do not normally take keyboard focus as well. More on that in another tutorial.